5. 实现架构

工程铁律: 任何性能优化不得以牺牲稳定性为代价;任何架构优化不得增加系统恢复复杂度。

开发优先级与验收标准见 开发原则与验收标准

2026-06-30 更新:采集调度已由 ScanEngine 调度驱动内核 统一实现,详见 docs/TODO/ScanEngine重构方案.mddocs/edge/边缘网关架构设计总览.md

5.1 核心组件

组件 代码位置 职责
ScanEngine scan_engine.go, scan_engine_compat.go 10ms Tick、PriorityQueue、ScanTask 状态机、防饿死、失败退避
ExecutionLayer execution_layer.go Serial / Parallel / Limited 三路分发
SerialQueueManager serial_queue_manager.go 每 deviceKey / 共享 channel 一 worker,硬隔离
BackpressureController backpressure_controller.go 全局 512 / 单设备 8 / 1000 req/s
ResourceController resource_controller.go Goroutine / Connection 全局限额
ChannelManager channel_manager.go CRUD + ScanEngineAdapter + finalizeScanCollect
ConnectionManager driver/connection_manager.go 唯一 dial Owner;EnsureConnected / ScheduleReconnect
RTTManager rtt_manager.go RTT 统计与 EWMA(读路径闭环待 Q3)
MTUManager mtu_manager.go MTU 动态协商
GapOptimizer gap_optimizer.go Gap 合并策略(ExecutionLayer 消费待 Q3)
CollectionScheduler 已移除,由 ScanEngine 替代
DeviceAdapterManager 画像算法保留为独立模块,调度归 ScanEngine

5.2 数据流

EdgeX V2.0 架构 · ScanEngine引擎

EdgeX V2.0 架构 · ScanEngine 统一调度:12 种南向驱动经 ScanEngine 写入影子设备实时快照,再联通虚拟设备、边缘计算与北向接口。

5.2.1 调度闭环(南向采集)

ScanEngine.processReadyTasks()
  → ExecutionLayer.Execute(task)
      → SerialQueueManager | ParallelExecutor
      → Driver.ReadPoints() [ConnectionManager 保障连接]
  → ShadowCore.WriteShadowDevice()
  → updateTaskState() + finalizeScanCollect()
  → 任务重新入 PriorityQueue

5.2.2 扇出路径

ShadowCore → ShadowBridge → DataPipeline
  → EdgeComputeManager / NorthboundManager / DeviceStorageManager

5.2.3 参数调整流程(目标态,Q3-B)

  1. ScanEngine Execute 后更新 RTT 画像(UpdateDeviceRTT
  2. ExecutionLayer 读前 consult GapOptimizer / MTU 分片
  3. 失败退避由 ScanEngine updateTaskState 统一处理,不在 Driver 内 retry

5.3 多协议支持

5.3.1 ExecutionLayer 执行模式

执行模式 协议示例 策略
Serial modbus-*, dlt645, omron-fins SerialQueueManager + channelMu
Parallel opc-ua, http, mqtt WorkerPool + BackpressureController
Limited s7, bacnet-ip, ethernet-ip 低并发串行读

5.3.2 Driver 约束

所有 Driver 实现统一接口 ReadPoints / WritePoint / Connect / Health禁止内部 ticker、goroutine、retry loop、独立连接管理。链路级重连统一经 Transport → ConnectionManager

5.3.3 协议差异处理

协议 特有参数 适配策略
Modbus 从站地址、功能码、寄存器范围 批量读取优化、帧间隔调整、RTT自适应、MTU协商
BACnet 对象ID、属性ID 批量读属性、COV订阅、RTT自适应
S7 DB块、数据类型、偏移量 批量读取、数据块优化、MTU协商
OPC UA 节点ID、采样间隔 订阅优化、批处理、RTT自适应
Serial 波特率、奇偶校验、停止位 串口参数调整、缓冲区管理、RTT自适应